home *** CD-ROM | disk | FTP | other *** search
/ Megazin 3 / Megazin - Issue 3 (1993-12-01)(Vicious).adf / STUFF / mst-sdtr.lha / stardust_trsetup.asm < prev   
Assembly Source File  |  1993-12-08  |  3KB  |  206 lines

  1.     org    $1f0000
  2.     load    $1f0000
  3.  
  4. a000
  5.  
  6.     org    $1f0000+$c0
  7.     load    $1f0000+$c0
  8. a0c0    blk.b    6,0
  9.  
  10. warp1
  11.     movem.l    d0/a0,-(a7)
  12.     move.l    #$4e714e71,d0
  13.  
  14.     move.l    warp_addr(pc),a0
  15.     move.l    (a0),a0
  16.  
  17.     tst.b    $c1.w
  18.     beq.s    .no_nrg
  19.     move.l    d0,$3480-$7d4(a0)
  20.     move.w    d0,$3480-$7d4+4(a0)
  21. .no_nrg
  22.     tst.b    $c0.w
  23.     beq.s    .no_life
  24.  
  25.     move.l    d0,$17a2-$7d4(a0)
  26.     move.w    d0,$17a2-$7d4+4(a0)
  27.  
  28.     move.l    d0,$17da-$7d4(a0)
  29.     move.w    d0,$17da-$7d4+4(a0)
  30. .no_life
  31.     movem.l    (a7)+,d0/a0
  32.     bra.w    warp
  33.  
  34. warp2
  35.     movem.l    d0/a0,-(a7)
  36.     move.l    #$4e714e71,d0
  37.  
  38.     move.l    warp_addr(pc),a0
  39.     move.l    (a0),a0
  40.  
  41.     tst.b    $c1.w
  42.     beq.s    .no_nrg
  43.     move.l    d0,$3bb8-$7d4(a0)
  44.     move.w    d0,$3bb8-$7d4+4(a0)
  45. .no_nrg
  46.     tst.b    $c0.w
  47.     beq.s    .no_life
  48.  
  49.     move.l    d0,$1ace-$7d4(a0)
  50.     move.w    d0,$1ace-$7d4+4(a0)
  51.  
  52.     move.l    d0,$1b0c-$7d4(a0)
  53.     move.w    d0,$1b0c-$7d4+4(a0)
  54. .no_life
  55.     movem.l    (a7)+,d0/a0
  56.     bra.w    warp
  57.  
  58. warp3
  59.     movem.l    d0/a0,-(a7)
  60.     move.l    #$4e714e71,d0
  61.  
  62.     move.l    warp_addr(pc),a0
  63.     move.l    (a0),a0
  64.  
  65.     tst.b    $c1.w
  66.     beq.s    .no_nrg
  67.     move.l    d0,$3bd0-$7d4(a0)
  68.     move.w    d0,$3bd0-$7d4+4(a0)
  69. .no_nrg
  70.     tst.b    $c0.w
  71.     beq.s    .no_life
  72.  
  73.     move.l    d0,$1ade-$7d4(a0)
  74.     move.w    d0,$1ade-$7d4+4(a0)
  75.  
  76.     move.l    d0,$1b16-$7d4(a0)
  77.     move.w    d0,$1b16-$7d4+4(a0)
  78. .no_life
  79.     movem.l    (a7)+,d0/a0
  80.     bra.w    warp
  81.  
  82. warp4
  83.     movem.l    d0/a0,-(a7)
  84.     move.l    #$4e714e71,d0
  85.  
  86.     move.l    warp_addr(pc),a0
  87.     move.l    (a0),a0
  88.  
  89.     tst.b    $c1.w
  90.     beq.s    .no_nrg
  91.     move.l    d0,$3c6e-$7d4(a0)
  92.     move.w    d0,$3c6e-$7d4+4(a0)
  93.  
  94.     move.w    #0,$d0c-$7d4+4(a0)    ; forcefield energy sub!
  95. .no_nrg
  96.     tst.b    $c0.w
  97.     beq.s    .no_life
  98.  
  99.     move.l    d0,$1830-$7d4(a0)
  100.     move.w    d0,$1830-$7d4+4(a0)
  101.  
  102.     move.l    d0,$1868-$7d4(a0)
  103.     move.w    d0,$1868-$7d4+4(a0)
  104. .no_life
  105.     movem.l    (a7)+,d0/a0
  106.     bra.w    warp
  107.  
  108. warp    move.l    warp_addr(pc),a5
  109.     move.l    (a5),a5
  110.     jmp    (a5)
  111. warp_addr
  112.     dc.l    0
  113. base_addr
  114.     dc.l    0
  115.  
  116.     org    $1f0000+$200
  117.     load    $1f0000+$200
  118.  
  119. a200    move.l    #$7fff,$dff09a
  120.     move.l    #$7fff,$dff09c
  121.     move.l    #$7fff,$dff096
  122.  
  123.     movem.l    d0/a0/a1,-(a7)
  124.     move.l    #$4e714e71,d0
  125.  
  126.     tst.b    $c0.w
  127.     beq.s    .no_life
  128.     lea    $c04f0c-$c00400(a5),a0    ; life
  129.     move.l    d0,(a0)+
  130.     move.w    d0,(a0)+
  131. .no_life
  132.     tst.b    $c1.w
  133.     beq.s    .no_nrg
  134.     lea    $c0697c-$c00400(a5),a0    ; energy
  135.     move.l    d0,(a0)+
  136.     move.w    d0,(a0)+
  137. .no_nrg
  138.     tst.b    $c2.w
  139.     beq.s    .no_shield
  140.     move.l    a5,a0
  141.     add.l    #$c147f8-$c00400,a0    ; shield
  142.     move.l    d0,(a0)+
  143.     move.w    d0,(a0)+
  144. .no_shield
  145.     tst.b    $c3.w
  146.     beq.s    .no_time
  147.     move.l    a5,a0
  148.     add.l    #$c19478-$c00400,a0    ; time
  149.     move.w    d0,(a0)+
  150. .no_time
  151.     move.l    a5,a0
  152.     move.l    #$c68600-$c00400,d0
  153.     move.l    #$2a7803f0,(a0,d0.l)        ; warp1
  154.     move.l    #$c688d8-$c00400,d0
  155.     move.l    #$2a7803f0+4,(a0,d0.l)        ; warp2
  156.     move.l    #$c68b7c-$c00400,d0
  157.     move.l    #$2a7803f0+4+4,(a0,d0.l)    ; warp3
  158.     move.l    #$c68e04-$c00400,d0
  159.     move.l    #$2a7803f0+4+4+4,(a0,d0.l)    ; warp4
  160.  
  161.     move.l    a5,a0
  162.     add.l    #$c692a4-$c00400,a0
  163.     lea    warp_addr(pc),a1    ; warp jump!
  164.     move.l    a0,(a1)
  165.  
  166. ;    add.l    #$c69318-$c00400,a0
  167.  
  168.     tst.b    $c4.w
  169.     beq.s    .no_jump
  170.     move.l    a5,a0
  171.     add.l    #$c04834-$c00400,a0
  172.     move.w    #$4eb8,(a0)+        ; level jump
  173.     move.w    #jump-a000,(a0)        ; level jump
  174.  
  175.     lea    adr(pc),a0
  176.     move.l    a5,4(a0)
  177.     add.l    #$c75f5a-$c00400,4(a0)
  178.     move.l    a5,12(a0)
  179.     add.l    #$c01e3c-$c00400,12(a0)
  180. .no_jump
  181.     movem.l    (a7)+,d0/a0/a1
  182.     rts
  183.  
  184.     org    $1f0000+$3c0
  185.     load    $1f0000+$3c0
  186.  
  187. jump    not.b    d0
  188.     ror.b    d0
  189.     cmp.b    #$26,d0
  190.     bne.s    no
  191. adr    move.w    #$0001,$0
  192.     move.w    #$ff00,$0
  193. no    rts
  194.  
  195.     org    $1f0000+$3f0
  196.     load    $1f0000+$3f0
  197.  
  198.     dc.l    warp1-a000
  199.     dc.l    warp2-a000
  200.     dc.l    warp3-a000
  201.     dc.l    warp4-a000
  202. ende
  203.  
  204. *$2a78    move.l $x.w,a5
  205.  
  206.